package com.example.chapter11;

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
import java.util.function.Supplier;
import java.util.stream.Stream;


/**
 * 11.2.2.方法引用
 */
public class Demo02 {

    class Student {



    }

    //构造引用
    // Supplier<Student> s = () -> new Student();
    Supplier<Student> s = Student::new;

    //静态方法
    // Stream<Double> stream = Stream.generate(() -> Math.random());
    Stream<Double> stream = Stream.generate(Math::random);


    //实例方法
    //  TreeSet<String> set = new TreeSet<>((s1,s2) -> s1.compareTo(s2));
/*  这里如果使用第一句话，编译器会有提示: Can be replaced with Comparator.naturalOrder，这句话告诉我们
  String已经重写了compareTo()方法，在这里写是多此一举，这里为什么这么写，是因为为了体现下面
  这句编译器的提示: Lambda can be replaced with method reference。好了，下面的这句就是改写成方法引用之后:
*/
    TreeSet<String> set = new TreeSet<>(String::compareTo);


    public static void main(String[] args) {
        Set set=new HashSet();
        // set.forEach(t -> System.out.println(t));
        set.forEach(System.out::println);
    }
}
